﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Diagnostics;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using Sharp.Infrastructure.Interfaces;

namespace Sharp.DataTransferObject
{
    /// <summary>
    /// 员工
    /// </summary>
    public class EmployeeDTO : IDTO
    {
        /// <summary>
        /// 主键
        /// </summary>
        public Guid Id { get; set; }
        /// <summary>
        /// 姓名简拼
        /// </summary>

        public string Jianpin { get; set; }

        /// <summary>
        /// 全名
        /// </summary>

        public string FullName { get; set; }

        /// <summary>
        /// 性别
        /// </summary>

        public MasterDataDTO Gender { get; set; }

        /// <summary>
        /// 民族
        /// </summary>

        public MasterDataDTO Nation { get; set; }
        /// <summary>
        /// 身份证
        /// </summary>

        public string IdCard { get; set; }
        /// <summary>
        /// 出生年月
        /// </summary>

        public string Birthday { get; set; }
        /// <summary>
        /// 编号
        /// </summary>

        public string Number { get; set; }
        /// <summary>
        /// 岗位
        /// </summary>

        public System.Guid? JobId { get; set; }

        /// <summary>
        /// 手机
        /// </summary>

        public string Phone { get; set; }
        /// <summary>
        /// 传真
        /// </summary>

        public string Fax { get; set; }
        /// <summary>
        /// 电子邮件
        /// </summary>

        public string Email { get; set; }
        /// <summary>
        /// 家庭地址
        /// </summary>

        public string Address { get; set; }


        /// <summary>
        /// 户籍
        /// </summary>

        public string RegisteredResidence { get; set; }
        /// <summary>
        /// 参加工作
        /// </summary>

        public string WorkDate { get; set; }
        /// <summary>
        /// 婚姻状况
        /// </summary>

        public MasterDataDTO Married { get; set; }
        /// <summary>
        /// 学历
        /// </summary>

        public MasterDataDTO EducationalBackground { get; set; }
        /// <summary>
        /// 紧急联系人
        /// </summary>

        public string UrgentContact { get; set; }
        /// <summary>
        /// 紧急联系电话
        /// </summary>

        public string UrgentPhone { get; set; }
        /// <summary>
        /// 任职状况
        /// </summary>

        public MasterDataDTO PostState { get; set; }

        /// <summary>
        /// 职称
        /// </summary>

        public MasterDataDTO Posttitle { get; set; }

        /// <summary>
        /// 职务
        /// </summary>

        public string JobTitle { get; set; }

        /// <summary>
        /// 备注
        /// </summary>

        public string Remark { get; set; }

        /// <summary>
        /// 添加日期
        /// </summary>
        /// <value>添加日期</value>

        public System.DateTime? CheckInTime { get; set; }
        /// <summary>
        /// 录入员的id
        /// </summary>
        /// <value>录入员的id</value>

        public System.Guid? CheckInUserId { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        /// <value>修改时间</value>

        public System.DateTime? ModifiTime { get; set; }
        /// <summary>
        /// 修改数据的用户Id
        /// </summary>
        /// <value>修改数据的用户Id</value>

        public System.Guid? ModifiedUserId { get; set; }
        /// <summary>
        /// 所属组织
        /// </summary>

        public virtual OrgDTO Org { get; set; }

        /// <summary>
        /// 岗位
        /// </summary>

        public virtual JobDTO Job { get; set; }

        /// <summary>
        /// 年龄
        /// </summary>
        [DataMember(EmitDefaultValue = false)]
        public int? Age { get; set; }
        /// <summary>
        /// 婚姻状况代码
        /// </summary>

        public string MarriedCode { get; set; }
        /// <summary>
        /// 学历
        /// </summary>

        public string EducationalBackgroundCode { get; set; }
        /// <summary>
        /// 任职状况
        /// </summary>

        public string PostStateCode { get; set; }
        /// <summary>
        /// 职称
        /// </summary>

        public string PosttitleCode { get; set; }
    }
}
